#ifdef GUI
#ifndef DISPLAY_H
#define DISPLAY_H

#include <stdio.h>
#include <math.h>

#include <vector>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

typedef struct {
	double x;
	double y;
} feature;

class MapDisplay
{
	char name[32];

	static int const w_w = 600;
	static int const w_h = 600;
	static int const border = 30;

	double r_x, r_y, r_theta;
	double g_x, g_y, g_theta;

	vector<feature> features;
	vector<feature> guesses;

	IplImage *frame;
public:
	MapDisplay(char *wName);

	void addFeature(double x, double y);
	void setGuess(double x, double y, int i);

	void moveRobot(double p, double theta);
	void guessRobot(double x, double y, double theta);

	const IplImage* renderMap();
	~MapDisplay();
};

#endif
#endif
